Product recommendations based on collaborative filtering of user data

ABSTRACT

A system gathers user behavior data from a group of web retailers and/or non-web retailers, analyzes the user behavior data to identify product recommendations for products offered by the web retailers, and provides one of the identified product recommendations in connection with a product page associated with one of the web retailers.

BACKGROUND

1. Field of the Invention

Implementations described herein relate generally to electronic commerceand, more particularly, to the recommendation of products based oncollaborative filtering of user data.

2. Description of Related Art

In recent years, an increasing number of retailers have begun operatingon the World Wide Web (“web”). By offering products on the web, theseweb retailers can gain access to a much broader base of customers.

Some existing retailers provide product recommendations to theircustomers. For example, a retailer may track customer purchases andactivities with regard to its web site and recommend products to itscustomers based on their purchases and activities.

Other existing retailers do not or cannot provide such productrecommendations. For example, a retailer may not have the customer base(e.g., not enough customer purchases and/or activity) or the technologyto provide meaningful product recommendations.

SUMMARY

According to one aspect, a method may include gathering user behaviordata from a group of web retailers, analyzing the user behavior data toidentify product recommendations for products offered by the webretailers, and providing one of the identified product recommendationsin connection with a product page associated with one of the webretailers.

According to another aspect, a system may include means for identifyingproduct recommendations for products offered by a web retailer based ondata relating to user activity associated with a group of web retailers,and means for supplying the identified product recommendations withproduct pages served by the web retailer.

According to yet another aspect, a system may include a data collectorto obtain information relating to user purchases from a group of webretailers, a recommended products identifier to identify a first productas a recommended product for a second product based on the informationrelating to user purchases, and a recommended products supplier topresent the recommended product for display with a product pageassociated with the second product and one of the web retailers.

According to a further aspect, a method may include receiving a requestfrom a user for recommended products associated with a product beingviewed from a web site associated with a web retailer, identifying oneor more recommended products for the product in a database ofrecommended products that was compiled from information associated witha group of web retailers, and providing the one or more recommendedproducts to the user on behalf of the web retailer.

According to another aspect, a method may include gathering userbehavior data from at least one web retailer and at least one non-webretailer; analyzing the user behavior data to identify productrecommendations for products offered by a particular web retailer; andproviding one of the identified product recommendations in connectionwith a product page associated with the particular web retailer.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate one or more embodiments of theinvention and, together with the description, explain the invention. Inthe drawings,

FIG. 1 is an exemplary diagram illustrating concepts consistent with theprinciples of the invention;

FIG. 2 is an exemplary diagram of a network in which systems and methodsconsistent with the principles of the invention may be implemented;

FIG. 3 is an exemplary diagram of a client or server of FIG. 2 accordingto an implementation consistent with the principles of the invention;

FIG. 4 is an exemplary functional block diagram of the productrecommendation system of FIG. 2 according to an implementationconsistent with the principles of the invention;

FIG. 5 is an exemplary diagram of the database of FIG. 4 according to animplementation consistent with the principles of the invention;

FIGS. 6 and 7 are flowcharts illustrating an exemplary operation forproviding product recommendations based on collaborative filtering ofuser data according to an implementation consistent with the principlesof the invention; and

FIGS. 8-11 are diagrams that illustrate exemplary processing accordingto an implementation consistent with the principles of the invention.

DETAILED DESCRIPTION

The following detailed description of implementations consistent withthe principles of the invention refers to the accompanying drawings. Thesame reference numbers in different drawings may identify the same orsimilar elements. Also, the following detailed description does notlimit the invention.

Overview

Implementations consistent with the principles of the invention aredirected to providing product recommendations based on collaborativefiltering of user behavior data. For example, implementations describedherein may leverage user behavior data associated with a group of webretailers and/or non-web retailers to provide product recommendations tousers of a particular web retailer.

In one implementation, user behavior data, such as informationassociated with user purchases (conversions) and information associatedwith product pages and/or product information pages users accessed andhow much time the users spent accessing the product pages and/or productinformation pages, may be collected with regard to many users and manyweb retailers and/or non-web retailers. This information may then beused to provide product recommendations to a user browsing productsassociated with a particular web retailer.

FIG. 1 is an exemplary diagram illustrating concepts consistent with theprinciples of the invention. As shown in FIG. 1, a user has accessed aproduct page associated with the web retailer CRH Bookstore. Forexample, the user has accessed a product page associated with a bookentitled “Harnessing the Rage” by Dr. Bruce Banner. As shown, the useris provided with recommendations regarding other books sold by CRHBookstore. The recommended books may include books that other userspurchased or considered purchasing when those users purchased orconsidered purchasing “Harnessing the Rage.” As explained above, theinformation used to recommend these books may be gathered not only withregard to users of the CRH Bookstore web retailer, but also with regardto users of other web retailers.

While the description to follow will generally describe the providing ofproduct recommendations to users of web retailers, it should beunderstood that the description is equally applicable to the providingof recommendations associated with information and/or services to usersof web retailers.

Exemplary Network Configuration

FIG. 2 is an exemplary diagram of a network 200 in which systems andmethods consistent with the principles of the invention may beimplemented. Network 200 may include multiple clients 210 connected toserver 220, servers 230-1, 230-2, . . . , 230-N (collectively referredto as “servers 230”), and servers 240-1, . . . , 240-M (collectivelyreferred to as “servers 240”) via a network 250. Two clients 210, asingle server 220, N servers 230, and M servers 240 have beenillustrated as connected to network 250 for simplicity. In practice,there may be more or fewer clients and servers. Also, in some instances,a client may perform a function of a server and a server may perform afunction of a client.

Clients 210 may include client entities. An entity may be defined as adevice, such as a personal computer, a wireless telephone, a personaldigital assistant (PDA), a lap top, or another type of computation orcommunication device, a thread or process running on one of thesedevices, and/or an object executable by one of these devices. Servers220-240 may include server entities that gather, process, search, and/ormaintain web pages in a manner consistent with the principles of theinvention.

In an implementation consistent with the principles of the invention,server 220 may include a product recommendation system 225 to provideproduct recommendations to users of at least some of servers 230. Server220 may gather user behavior data associated with users' activities withregard to servers 230 and/or 240 and perform collaborative filtering ofthe user behavior data to provide recommendation data to clients 210.Servers 230 may be associated with web retailers. Servers 230 mayprovide products, services, and/or information for sale, rent, orbrowsing by users associated with clients 210. Servers 240 may beassociated with non-web retailers. Servers 240 may provide information,such as reviews, descriptions, and/or prices, regarding products,services, and/or information.

While servers 220-240 are shown as separate entities, it may be possiblefor one or more of servers 220-240 to perform one or more of thefunctions of another one or more of servers 220-240. For example, it maybe possible that two or more of servers 220-240 are implemented as asingle server. It may also be possible for a single one of servers220-240 to be implemented as two or more separate (and possiblydistributed) devices.

Network 250 may include a local area network (LAN), a wide area network(WAN), a telephone network, such as the Public Switched TelephoneNetwork (PSTN), an intranet, the Internet, a memory device, or acombination of networks. Clients 210 and servers 220-240 may connect tonetwork 250 via wired, wireless, and/or optical connections.

Exemplary Client/Server Architecture

FIG. 3 is an exemplary diagram of a client or server entity (hereinaftercalled “client/server entity”), which may correspond to one or more ofclients 210 and/or servers 220-240, according to an implementationconsistent with the principles of the invention. The client/serverentity may include a bus 310, a processor 320, a main memory 330, a readonly memory (ROM) 340, a storage device 350, an input device 360, anoutput device 370, and a communication interface 380. Bus 310 mayinclude a path that permits communication among the elements of theclient/server entity.

Processor 320 may include a processor, microprocessor, or processinglogic that may interpret and execute instructions. Main memory 330 mayinclude a random access memory (RAM) or another type of dynamic storagedevice that may store information and instructions for execution byprocessor 320. ROM 340 may include a conventional ROM device or anothertype of static storage device that may store static information andinstructions for use by processor 320. Storage device 350 may include amagnetic and/or optical recording medium and its corresponding drive.

Input device 360 may include a mechanism that permits an operator toinput information to the client/server entity, such as a keyboard, amouse, a pen, voice recognition and/or biometric mechanisms, etc. Outputdevice 370 may include a mechanism that outputs information to theoperator, including a display, a printer, a speaker, etc. Communicationinterface 380 may include any transceiver-like mechanism that enablesthe client/server entity to communicate with other devices and/orsystems. For example, communication interface 380 may include mechanismsfor communicating with another device or system via a network, such asnetwork 250.

As will be described in detail below, the client/server entity,consistent with the principles of the invention, may perform certainoperations relating to the providing of product recommendations. Theclient/server entity may perform these operations in response toprocessor 320 executing software instructions contained in acomputer-readable medium, such as memory 330. A computer-readable mediummay be defined as a physical or logical memory device and/or carrierwave.

The software instructions may be read into memory 330 from anothercomputer-readable medium, such as data storage device 350, or fromanother device via communication interface 380. The softwareinstructions contained in memory 330 may cause processor 320 to performprocesses that will be described later. Alternatively, hardwiredcircuitry may be used in place of or in combination with softwareinstructions to implement processes consistent with the principles ofthe invention. Thus, implementations consistent with the principles ofthe invention are not limited to any specific combination of hardwarecircuitry and software.

Exemplary Functional Diagram of Product Recommendation System

FIG. 4 is an exemplary functional block diagram of productrecommendation system 225 (FIG. 2) according to an implementationconsistent with the principles of the invention. Product recommendationsystem 225 may include a data collector 410, a recommended productsidentifier 420 connected to a database 430, and a recommended productssupplier 440. In one implementation, data collector 410, recommendedproducts identifier 420, and/or recommended products supplier 440 may beimplemented as one or more components in software and/or hardware withinserver 220. In another implementation, data collector 410, recommendedproducts identifier 420, and/or recommended products supplier 440 may beimplemented as one or more components in software and/or hardware withinanother device or a group of devices separate from or including server220.

Generally, data collector 410 may gather user behavior data and store itas a corpus of user behavior data. The user behavior data may includeinformation relating to purchases (conversions) made by users (which maybe referred to as “user purchase activity”). In one implementation, webretailer servers 230 may provide information relating to purchases(conversions) to data collector 410. In another implementation, datacollector 410 may obtain information relating to purchases in anotherway, such as from clients 210 and/or non-web retailer servers 240. Fromthis information, data collector 410 may identify products that userspurchased together. For example, a web retailer server might inform datacollector 410 that a user purchased CREST toothpaste and a REACHtoothbrush during the same online session (e.g., in the same purchasetransaction). Data collector 410 may store this information in thecorpus.

It may be possible for different web retailer servers to label the sameproduct differently. In this case, data collector 410 may normalizeinformation relating to product labels or names. For example, if webretailer server A called CREST MultiCare Cool Mint toothpaste “Crest mccm tp,” web retailer server B called it “Crest mc cm toothpaste,” andweb retailer server C called it “Crest MultiCare Cool Mint toothpaste,”data collector 410 may normalize this information to “Crest MultiCareCool Mint toothpaste,” or some other consistent variation.Alternatively, recommended products identifier 420 may normalize theinformation when analyzing the user behavior data to identify productrecommendations.

The user behavior data may also include information relating to whatproduct pages users accessed and how long the users spent accessingthese pages (which may be referred to as “user non-purchase activity”).In one implementation, clients 210 may provide information relating toproduct pages users accessed and how long the users spent accessingthese pages to data collector 410. For example, a client 210 may containsoftware, such as toolbar software, that monitors a user's webactivities to assist in making the user's online experience more useful.The toolbar software may periodically provide information (e.g., UniformResource Locators (URLs)) relating to product pages the user accessedand how long the user spent accessing these pages to data collector 410.In another implementation, data collector 410 may obtain informationrelating to product pages users accessed and how long the users spentaccessing these pages in another way, such as from web retailer servers230. From this information, data collector 410 may identify productsthat users accessed during the same online session and/or products thatthe users spent a lot of time (e.g., at least a predetermined amount oftime) accessing (which may infer an interest in those products) duringthe session. Data collector 410 may store this information in thecorpus.

The user behavior data may also include information relating to whatproduct information pages (e.g., review pages, price comparison pages,product description pages, etc.) users accessed and how long the usersspent accessing these pages (which may also be referred to as “usernon-purchase activity”). In one implementation, clients 210 may provideinformation relating to product information pages users accessed and howlong the users spent accessing these pages to data collector 410. Forexample, toolbar software on a client 210 may periodically provideinformation (e.g., URLs) relating to product information pages the useraccessed and how long the user spent accessing these pages to datacollector 410. In another implementation, data collector 410 may obtaininformation relating to information pages users accessed and how longthe users spent accessing these pages in another way, such as fromnon-web retailer servers 240. From this information, data collector 410may identify products associated with product information pages thatusers accessed during the same online session and/or products associatedwith product information pages that the users spent a lot of time (e.g.,at least a predetermined amount of time) accessing (which may infer aninterest in those products) during the session. Data collector 410 maystore this information in the corpus.

Recommended products identifier 420 may access the user behavior data inthe corpus to identify recommended products. For example, recommendedproducts identifier 420 may determine, for each product, what otherproduct(s) users purchased or were interested in (e.g., spent a lot oftime accessing) during the same online session. Recommended productsidentifier 420 may operate based on a set of thresholds, such that forproduct A to be considered a recommended product with regard to productB, product A must occur at least some threshold number of times inconjunction with product B. Another threshold may identify the amount ofuser behavior data that is needed to generate useful recommendations fora product. Yet other thresholds may be set, as necessary, to make theproduct recommendations meaningful to a user.

Recommended products identifier 420 may store information regardingproducts and their recommended products in database 430. FIG. 5 is anexemplary diagram of database 430 according to an implementationconsistent with the principles of the invention. Database 430 may beembodied within a single memory device or within multiple (possiblydistributed) memory devices. Database 430 may include a product namefield 510 and a recommended products field 520.

Product name field 510 may store information relating to differentproducts that web retailer servers 430 sell. Product name field 510 maystore information relating to a product in one or more forms ofspecificity. For example, product name field 512 stores informationabout a specific type of toothpaste (CREST MultiCare Cool Minttoothpaste); product name field 514 stores more general informationabout a type of toothpaste (CREST MultiCare toothpaste); and productname field 516 stores even more general information about a type oftoothpaste (CREST toothpaste). The particular form of specificity may beimplementation-specific or based on one or more factors, such as theamount of behavior data relating to the product in the corpus.

Recommended products field 520 may list one or more products that arerecommended for the product identified in product name field 510. Therecommended products may include those products identified byrecommended products identifier 420 as related in some manner to theproduct identified in product name field 510 (e.g., users purchased bothproducts together, users were interested in one of the products whenpurchasing the other product, or users were interested in both productsduring the same online session). As shown in FIG. 5, users who purchasedCREST toothpaste also purchased or were interested in DIAL Deodorantsoap, GLIDE Tape Original dental floss, REACH Performance toothbrush,and CLAIROL Herbal Essences shampoo.

Similar to the products in product name field 510, recommended productsfield 520 may store information relating to a product in one or moreforms of specificity. For example, recommended products field 520 maystore information about a specific type of product (e.g., GLIDE TapeOriginal dental floss and REACH Performance toothbrush) and/or moregeneral information about a type of product (DIAL Deodorant soap andCLAIROL Herbal Essences shampoo). The particular form of specificity maybe implementation-specific or based on one or more factors, such as theamount of behavior data relating to the product in the corpus.

Returning to FIG. 4, recommended products supplier 440 may supplyproduct recommendations from database 440 to clients 210 on behalf ofweb retailer servers 230. For example, recommended products supplier 440may provide product recommendations for display within product pagesassociated with web sites of web retailer servers 230. In an alternativeimplementation, recommended products supplier 440 may provide productrecommendations to web retailer servers 230 for inclusion on theirproduct pages.

Exemplary Processing

FIGS. 6 and 7 are flowcharts illustrating an exemplary operation forproviding product recommendations based on collaborative filtering ofuser data according to an implementation consistent with the principlesof the invention. In one implementation, the exemplary processing ofFIGS. 6 and 7 may be performed by server 220 (FIG. 2). In anotherimplementation, the exemplary processing of FIGS. 6 and 7 may beperformed by one or more other components, possibly in conjunction withserver 220.

Processing may begin with the gathering of user behavior data (block610) (FIG. 6). As explained above, the user behavior data may includeinformation relating to purchases (conversions) made by users of webretailer servers 230. In one implementation, web retailer servers 230may supply information relating to purchases (conversions) that occurredon their web sites. The user behavior data may also or alternativelyinclude information relating to what product and/or product informationpages users accessed and how long the users spent accessing these pages.In one implementation, software on clients 210 may supply informationrelating to product and/or product information pages users accessed(e.g., URLs of the product pages) and how long the users spent accessingthese pages.

A database that maps products to their product recommendations may becreated, such as database 430, based on the user behavior data (block620). To create the database, the user behavior data may be analyzed(block 710) (FIG. 7) and normalized (block 720), if necessary, toidentify recommended product information, if any, associated with eachproduct name (block 730). For example, it may be determined, for eachproduct, what other product(s) users purchased or were interested in(e.g., spent a lot of time accessing) during the same online session.

If, during online sessions with web retailers, users generally purchasedproduct A and B together, product A may be considered a recommendedproduct for product B, and vice versa. If, during online sessions withweb retailers, users generally spent a lot of time accessing product Awhen purchasing product B, product A may be considered a recommendedproduct for product B, and vice versa. If, during online sessions withweb retailers, users generally spent a lot of time accessing bothproducts A and B, product A may be considered a recommended product forproduct B, and vice versa, even if the users generally purchased neitherproduct.

Returning to FIG. 6, the product recommendations may be provided onbehalf of the web retailers (block 630). For example, the web retailersmay insert a piece of code, called a “creative,” on their product pages.The creative may include, for example, JavaScript or other code designedto be downloaded and executed by web browsers or other software atclients 210. The code, when executed at a client 210, may cause client210 to request recommended products from product recommendation system225. The request may include, for example, an identification of the webretailer and the product (or product page) currently being accessed atthe web retailer. In response, product recommendation system 225 maytransmit product recommendations to client 210. The productrecommendations may be provided in conjunction with the product pagefrom the web retailers. For example, the product recommendations may beintegrated and displayed with the product page or provided for displaywithin a pop-up window, or the like, in conjunction with the productpage.

The product recommendations provided in conjunction with a product pagemay include relevant product recommendations. By “relevant” it is meantthose recommendations that are applicable not only to the product on theproduct page, but also to the web retailer selling the product (e.g., itwould not be useful to recommend products that the web retailer does notsell). The product associated with a product page may be determined, forexample, by crawling the web site of the web retailer and associatingthe URL of the page with the name of the product. A list of the productsthat the web retailer sells can also be determined, for example, bycrawling the web site of the web retailer or by analyzing a site map orthe like.

The product recommendations may appear as, or include, links within theproduct page. In one implementation, these links may refer to productrecommendation system 225. When a user selects (e.g., clicks on) one ofthese links, product recommendation system 225 may redirect the user'sbrowser to the appropriate product page of the web retailer. In anotherimplementation, these links may include references to both productrecommendation system 225 and the appropriate product page of the webretailer. When a user selects (e.g., clicks on) one of these links, theproduct page may be displayed to the user and product recommendationsystem 225 may be sent information informing product recommendationsystem 225 that the link was selected. In either situation, productrecommendation system 225 may, in some possible implementations, use theuser link selection as a basis for charging the web retailer. Othertechniques for charging the web retailer are, of course, possible. Suchtechniques may include charging the web retailer when recommendedproducts are actually purchased or placed in a shopping cart or chargingthe web retailer a flat rate for the product recommendation service.

EXAMPLE

FIGS. 8-11 are diagrams that illustrate exemplary processing accordingto an implementation consistent with the principles of the invention. Asshown in FIG. 8, user purchase activity and user non-purchase activity(e.g., user browsing activity) may be collected as user behavior data.The user behavior data may be analyzed to form a database that mapsproducts to recommended products.

As shown in FIG. 9, assume that a web retailer(momandpopclothingstore.com) sells men's and women's clothing online. Toobtain product recommendations, the web retailer may coordinate withserver 220 (FIG. 2) (or an operator of server 220) to obtain a block ofcode (e.g., a creative) to insert in the product pages on its web site.The web retailer may insert the creative in its product pages. As shownin FIG. 9, the web retailer inserted a creative on a product pageassociated with Slappy black leather shoes.

As shown in FIG. 10, in one implementation, when a user thereafteraccesses the product page relating to Slappy black leather shoes on theweb retailer's web site, the product page may provide productrecommendations. In this implementation, for example, the user isinformed that customers who were interested in this item (Slappy blackleather shoes) were also interested in a Happy black women's belt andPappy charcoal women's pants.

As shown in FIG. 11, in another implementation, when a user thereafteraccesses the product page relating to Slappy black leather shoes on theweb retailer's web site, the product page may provide productrecommendations. In this implementation, for example, the user isinformed of what customers typically purchased after viewing this item(Slappy black leather shoes). As shown in FIG. 11, 68% of customerspurchased Slappy black leather shoes after viewing the product pageassociated with Slappy black leather shoes; 11% of customers purchasedHappy black leather shoes after viewing the product page associated withSlappy black leather shoes; and 2% of customers purchased Slappy brownleather shoes after viewing the product page associated with Slappyblack leather shoes.

Conclusion

Implementations consistent with the principles of the invention mayleverage user behavior information associated with a group of webretailers and/or non-web retailers to provide product recommendations tocustomers on a product page of a web retailer that may not have thecustomer base or the technology to provide useful productrecommendations itself.

The foregoing description of implementations consistent with theprinciples of the invention provides illustration and description, butis not intended to be exhaustive or to limit the invention to theprecise form disclosed. Modifications and variations are possible inlight of the above teachings or may be acquired from practice of theinvention.

For example, while series of acts have been described with regard toFIGS. 6 and 7, the order of the acts may be modified in otherimplementations consistent with the principles of the invention.Further, non-dependent acts may be performed in parallel.

It will be apparent to one of ordinary skill in the art that aspects ofthe invention, as described above, may be implemented in many differentforms of software, firmware, and hardware in the implementationsillustrated in the figures. The actual software code or specializedcontrol hardware used to implement aspects consistent with theprinciples of the invention is not limiting of the invention. Thus, theoperation and behavior of the aspects were described without referenceto the specific software code—it being understood that one of ordinaryskill in the art would be able to design software and control hardwareto implement the aspects based on the description herein.

No element, act, or instruction used in the present application shouldbe construed as critical or essential to the invention unless explicitlydescribed as such. Also, as used herein, the article “a” is intended toinclude one or more items. Where only one item is intended, the term“one” or similar language is used. Further, the phrase “based on” isintended to mean “based, at least in part, on” unless explicitly statedotherwise.

1. A method, comprising: gathering, by a server device, user behaviordata relating to user purchase activity and user non-purchase activitythat are both associated with a plurality of web retailers; analyzing,by the server device, the user behavior data to identify productrecommendations that correspond to products offered for sale by the webretailers; receiving, by the server device and from a client device, arequest identifying one of the web retailers and a particular product,offered for sale by the identified web retailer, that is currently beingaccessed by the client device; identifying, by the server device and inresponse to the request, a plurality of the identified productrecommendations relating to the particular product; determining, by theserver device, products offered for sale by the identified web retailer;identifying, by the server device, a particular one or more of theplurality of the identified product recommendations that correspond tothe products offered for sale by the identified web retailer; andproviding, by the server device, the particular one or more of theplurality of the identified product recommendations in connection with aproduct page, served by the identified web retailer, that presentsinformation regarding the particular product.
 2. The method of claim 1,where gathering user behavior data includes: obtaining, from the webretailers, data relating to the user purchase activity associated withthe web retailers.
 3. The method of claim 2, where analyzing the userbehavior data includes: identifying products that were purchasedtogether, based on the data relating to user purchase activity, todetermine product recommendations for the products offered by the webretailers.
 4. The method of claim 1, where gathering user behavior dataincludes: obtaining, from a plurality of client devices associated witha plurality of users, data relating to the user non-purchase activityassociated with the web retailers.
 5. The method of claim 4, whereanalyzing the user behavior data includes: identifying products that theusers spent at least a particular amount of time accessing, based on thedata relating to user non-purchase activity, to determine productrecommendations for the products offered by the web retailers.
 6. Themethod of claim 1, where analyzing the user behavior data includes:identifying products that were purchased together, based on datarelating to the user purchase activity, and products that users spent atleast a particular amount of time accessing, based on data relating tothe user non-purchase activity, to determine product recommendations forthe products offered by the web retailers.
 7. The method of claim 1,where analyzing the user behavior data includes: determining that afirst product is related to a second product when the first productoccurs in conjunction with the second product in the user behavior dataat least a particular number of times.
 8. The method of claim 1, furthercomprising: creating, by the server device, a database based on theidentified product recommendations.
 9. The method of claim 8, wherecreating a database includes: storing a product name associated with aproduct in the database; and storing a list of one or more products thatare recommended for the product in the database.
 10. The method of claim1, further comprising: normalizing, by the server device, names ofproducts in the user behavior data prior to identifying productrecommendations for products offered by the web retailers.
 11. Themethod of claim 1, where analyzing the user behavior data includes:determining that a first product is a recommended product for a secondproduct when the user behavior data indicates that users purchased thefirst product and the second product together.
 12. The method of claim1, where analyzing the user behavior data includes: determining that afirst product is a recommended product for a second product when theuser behavior data indicates that users spent at least a particularamount of time accessing a product page associated with the firstproduct before or after purchasing the second product.
 13. The method ofclaim 1, where analyzing the user behavior data includes: determiningthat a first product is a recommended product for a second product whenthe user behavior data indicates that users spent at least a particularamount of time accessing product pages associated with both the firstproduct and the second product during a same online session.
 14. Themethod of claim 1, where gathering user behavior data further includes:gathering user behavior data from at least one non-web retailer.
 15. Asystem, comprising: one or more devices comprising: means for receiving,from a client, a request that identifies a web retailer and a particularproduct of a plurality of products offered for sale by the web retailer;means for identifying, in response to the request, a plurality ofproduct recommendations for the particular product based on datarelating to user activity associated with a plurality of different webretailers and a plurality of different non-web retailers; means fordetermining products offered for sale by the web retailer; means foridentifying a particular one or more of the plurality of productrecommendations that correspond to the products offered for sale by theweb retailer; and means for supplying the particular one or more of theplurality of product recommendations with a product page served by theweb retailer.
 16. A system, comprising: one or more devices comprising:a data collector to obtain information relating to user purchases from aplurality of web retailers by a plurality of users; a recommendedproducts identifier to identify one of a plurality of first products asa recommended product for a second product offered for sale by one ofthe web retailers based on the information relating to user purchases;and a recommended products supplier to: receive a request identifyingthe one of the web retailers and the second product offered for sale bythe one of the web retailers, identify, in response to the request, theplurality of first products as recommended products for the secondproduct, identify a plurality of products offered for sale by the one ofthe web retailers, identify the one of the plurality of first productsas one of the plurality of products that are offered for sale by the oneof the web retailers, and present information regarding the one of theplurality of first products for display with a product page associatedwith the second product and the one of the web retailers.
 17. The systemof claim 16, where the recommended products identifier is configured toidentify the one of the plurality of first products as a recommendedproduct for the second product when the information relating to userpurchases indicates that the one of the plurality of first products andthe second product were purchased together.
 18. The system of claim 16,where the data collector is further configured to obtain data relatingto an amount of time that users spent accessing products associated withthe web retailers; and where the recommended products identifier isfurther configured to identify the one of the plurality of firstproducts as a recommended product for the second product when theinformation relating to an amount of time that users spent accessingproducts indicates that users spent at least a particular amount of timeaccessing both the one of the plurality of first products and the secondproduct.
 19. The system of claim 16, where the recommended productsidentifier is configured to identify the one of the plurality of firstproducts as a recommended product for the second product when the one ofthe plurality of first products occurs in conjunction with the secondproduct in the information relating to user purchases at least apredetermined number of times.
 20. The system of claim 16, furthercomprising: a database to store a product name associated with thesecond product and a list of one or more other products, including theone of the plurality of first products, that are recommended for thesecond product.
 21. The system of claim 16, wherein where the datacollector is farther configured to obtain information relating to usernon-purchase activity from at least one non-web retailer and where therecommended products identifier is configured to identify the one of theplurality of first product products as a recommended product for thesecond product based on the information relating to user non-purchaseactivity from the at least one non-web retailer.
 22. A memory devicethat stores instructions executable by at least one processor,comprising: instructions for identifying product recommendations forproducts offered by a plurality of web retailers on corresponding websites based on user behavior data relating to user activity associatedwith the web retailers and a plurality of users; instructions forstoring the identified product recommendations in a database;instructions for receiving a request identifying one of the webretailers and a particular product offered for sale by the identifiedweb retailer; instructions for identifying, in response to the request,a plurality of the identified product recommendations in the databasethat correspond to the particular product; instructions for identifyingproducts offered for sale by the identified web retailer instructionsfor identifying a particular one or more of the plurality of theidentified product recommendations that correspond to the productsoffered for sale by the identified web retailer; and instructions forproviding the particular one or more of the identified productrecommendations in connection with a product page, associated with theparticular product, from a web site corresponding to the identified webretailer.
 23. The memory device of claim 22, further comprising:instructions for charging the identified web retailer a fee based onreceiving the request.
 24. The memory device of claim 22, furthercomprising: instructions for receiving information regarding a selectionof one of the particular one or more of the plurality of the identifiedproduct recommendations; and instructions for charging the identifiedweb retailer a fee based on the received information.
 25. The memorydevice of claim 22, further comprising: instructions for receiving firstinformation regarding a selection of one of the particular one or moreof the plurality of the identified product recommendations; instructionsfor receiving second information that indicates that the particular oneor more of the plurality of the identified product recommendations hasbeen purchased; and instructions for charging the identified webretailer a fee based on the received second information.
 26. A method,comprising: gathering, by a server device, user behavior data relatingto user activity, of a plurality of users, in connection with at leastone web retailer and at least one non-web retailer; analyzing, by theserver device, the user behavior data to identify productrecommendations for products offered by a plurality of web retailers;receiving, by the server device and from a client device, a requestidentifying a particular web retailer of the plurality of web retailersand a particular product offered by the particular web retailer;identifying, by the server device and in response to the recluest, aplurality of the product recommendations relating to the particularproduct; determining, by the server device, products offered by theparticular web retailer; identifying, by the server device, a particularone or more of the plurality of the product recommendations thatcorrespond to the products offered by the particular web retailer; andproviding, by the server device, the particular one or more of theplurality of the product recommendations in connection with a productpage associated with the particular web retailer and the particularproduct offered by the particular web retailer.
 27. The method of claim26, where the user activity includes user purchase activity and usernon-purchase activity that occur on web sites of the plurality of webretailers at least one web retailer and the at least one non-webretailer.
 28. The method of claim 26, where the particular product iscurrently being accessed by the client device on a web site of theparticular web retailer.